home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1992 June: ROMin Holiday / ADC Developer CD (1992-06) (''ROMin Holiday'')_iso / Developer Connection - 06-1992.iso / Developer Essentials / MPW Interfaces & Libraries / PInterfaces / HyperXCmd.p < prev    next >
Encoding:
Text File  |  1992-01-29  |  10.7 KB  |  261 lines  |  [TEXT/MPS ]

  1. {
  2.     HyperXCmd.p
  3.     Definition file for HyperCard XCMDs and XFCNs in Pascal.
  4.  
  5.     Copyright Apple Computer, Inc.  1987-1991
  6.     All rights reserved
  7. }
  8.  
  9.  
  10. {$IFC UNDEFINED UsingIncludes}
  11. {$SETC UsingIncludes := 0}
  12. {$ENDC}
  13.  
  14. {$IFC NOT UsingIncludes}
  15.     UNIT HyperXCmd;
  16.     INTERFACE
  17. {$ENDC}
  18.  
  19. {$IFC UNDEFINED UsingHyperXCmd}
  20. {$SETC UsingHyperXCmd := 1}
  21.  
  22. {$I+}
  23. {$SETC HyperXCmdIncludes := UsingIncludes}
  24. {$SETC UsingIncludes := 1}
  25. {$IFC UNDEFINED UsingTypes}
  26. {$I $$Shell(PInterfaces)Types.p}
  27. {$ENDC}
  28. {$IFC UNDEFINED UsingEvents}
  29. {$I $$Shell(PInterfaces)Events.p}
  30. {$ENDC}
  31. {$IFC UNDEFINED UsingTextEdit}
  32. {$I $$Shell(PInterfaces)TextEdit.p}
  33. {$ENDC}
  34. {$IFC UNDEFINED UsingMenus}
  35. {$I $$Shell(PInterfaces)Menus.p}
  36. {$ENDC}
  37. {$IFC UNDEFINED UsingStandardFile}
  38. {$I $$Shell(PInterfaces)StandardFile.p}
  39. {$ENDC}
  40. {$SETC UsingIncludes := HyperXCmdIncludes}
  41.  
  42. CONST
  43.   { result codes }
  44.   xresSucc = 0;
  45.   xresFail = 1;
  46.   xresNotImp = 2;
  47.  
  48.   { XCMDBlock constants for event.what... }
  49.   xOpenEvt              = 1000;         { the first event after you are created }
  50.   xCloseEvt             = 1001;         { your window is being forced close (Quit?) }
  51.   xGiveUpEditEvt        = 1002;         { you are losing Edit... }
  52.   xGiveUpSoundEvt    = 1003;        { someone else is requesting HyperCard's sound channel }
  53.   xHidePalettesEvt    = 1004;        { someone called HideHCPalettes }
  54.   xShowPalettesEvt    = 1005;        { someone called ShowHCPalettes }
  55.   xEditUndo        = 1100;        { Edit——Undo }
  56.   xEditCut        = 1102;        { Edit——Cut }
  57.   xEditCopy        = 1103;        { Edit——Copy }
  58.   xEditPaste        = 1104;        { Edit——Paste }
  59.   xEditClear        = 1105;        { Edit——Clear }
  60.   xSendEvt        = 1200;        { script has sent you a message (text) }
  61.   xSetPropEvt        = 1201;        { set a window property }
  62.   xGetPropEvt        = 1202;        { get a window property }
  63.   xCursorWithin        = 1300;        { cursor is within the window }
  64.   xMenuEvt        = 1400;        { user has selected an item in your menu }
  65.   xMBarClickedEvt    = 1401;        { a menu is about to be shown--update if needed }
  66.  
  67.   xShowWatchInfoEvt    = 1501;        { for variable and message watchers }
  68.   xScriptErrorEvt    = 1502;        { place the insertion point }
  69.   xDebugErrorEvt    = 1503;        { user clicked "Debug" at a complaint }
  70.   xDebugStepEvt        = 1504;        { hilite the line }
  71.   xDebugTraceEvt    = 1505;        { same as step but tracing }
  72.   xDebugFinishedEvt    = 1506;        { script ended }
  73.  
  74.   paletteProc        = 2048;        { Windoid with grow box }
  75.   palNoGrowProc        = 2052;        { standard Windoid defproc } 
  76.   palZoomProc        = 2056;        { Windoid with zoom and grow }
  77.   palZoomNoGrow        = 2060;        { Windoid with zoom and no grow }
  78.   hasZoom        =    8;
  79.   hasTallTBar        =    2;
  80.   toggleHilite        =    1;
  81.   
  82.   maxCachedChecks    = 16;        { maximum number of checkpoints in a script }
  83.  
  84.   { paramCount is set to these constants when first calling special XThings }
  85.   xMessageWatcherID    = -2;
  86.   xVariableWatcherID    = -3;
  87.   xScriptEditorID    = -4;
  88.   xDebuggerID        = -5;
  89.  
  90.   { XTalkObjectPtr^.objectKind values }
  91.   stackObj    = 1;
  92.   bkgndObj    = 2;
  93.   cardObj    = 3;
  94.   fieldObj    = 4;
  95.   buttonObj    = 5;
  96.  
  97.   { selectors for ShowHCAlert's dialogs (shown as buttonID:buttonText) }
  98.   errorDlgID        = 1;    { 1:OK (default) }
  99.   confirmDlgID        = 2;    { 1:OK (default) and 2:Cancel }
  100.   confirmDelDlgID    = 3;    { 1:Cancel (default) and 2:Delete }
  101.   yesNoCancelDlgID    = 4;    { 1:Yes (default), 2:Cancel, and 3:No }
  102.  
  103.  
  104. TYPE
  105.   XCmdPtr   = ^XCmdBlock;
  106.   XCmdBlock = RECORD
  107.         paramCount:    INTEGER; { If = -1 then new use for XWindoids }
  108.         params:        ARRAY[1..16] OF Handle;
  109.         returnValue:     Handle; 
  110.         passFlag:    BOOLEAN;
  111.         
  112.         entryPoint:    ProcPtr; { to call back to HyperCard }
  113.         request:    INTEGER;
  114.         result:        INTEGER;
  115.         inArgs:        ARRAY[1..8] OF LongInt;
  116.         outArgs:    ARRAY[1..4] OF LongInt;
  117.           END;
  118.  
  119.   XWEventInfoPtr = ^XWEventInfo;
  120.   XWEventInfo     = RECORD
  121.              event:      EventRecord;
  122.              eventWindow: WindowPtr;
  123.              eventParams: ARRAY[1..9] OF LongInt;
  124.              eventResult: Handle;
  125.            END;
  126.           
  127.   XTalkObjectPtr = ^XTalkObject;
  128.   XTalkObject = RECORD
  129.           objectKind:   INTEGER;    { stack, bkgnd, card, field, or button }
  130.           stackNum:    LongInt;    { reference number of the source stack }
  131.           bkgndID:    LongInt;
  132.           cardID:    LongInt;
  133.           buttonID:    LongInt;
  134.           fieldID:    LongInt;
  135.         END;
  136.  
  137.   CheckPtHandle = ^CheckPtPtr;
  138.   CheckPtPtr    = ^CheckPts;
  139.   CheckPts    = RECORD
  140.                     checks: ARRAY[1..maxCachedChecks] OF INTEGER;
  141.           END;
  142.  
  143.  
  144. (****  HyperTalk Utilities  ****)
  145. FUNCTION  EvalExpr(paramPtr: XCmdPtr; expr: Str255): Handle;
  146. PROCEDURE SendCardMessage(paramPtr: XCmdPtr; msg: Str255);
  147. PROCEDURE SendHCMessage(paramPtr: XCmdPtr; msg: Str255);
  148. PROCEDURE RunHandler(paramPtr: XCmdPtr; handler: Handle);
  149.  
  150. (****  Memory Utilities  ****)
  151. FUNCTION  GetGlobal(paramPtr: XCmdPtr; globName: Str255): Handle;
  152. PROCEDURE SetGlobal(paramPtr: XCmdPtr; globName: Str255; globValue: Handle);
  153. PROCEDURE ZeroBytes(paramPtr: XCmdPtr; dstPtr: Ptr;longCount: LongInt);
  154.  
  155. (****  String Utilities  ****)
  156. PROCEDURE ScanToReturn(paramPtr: XCmdPtr; VAR scanPtr: Ptr);
  157. PROCEDURE ScanToZero(paramPtr: XCmdPtr; VAR scanPtr: Ptr);
  158. FUNCTION  StringEqual(paramPtr: XCmdPtr; str1,str2: Str255): BOOLEAN;
  159. FUNCTION  StringLength(paramPtr: XCmdPtr; strPtr: Ptr): LongInt;
  160. FUNCTION  StringMatch(paramPtr: XCmdPtr; pattern: Str255; target: Ptr): Ptr;
  161. PROCEDURE ZeroTermHandle(paramPtr: XCmdPtr; hndl: Handle);    
  162.  
  163. (****  String Conversions  ****)
  164. PROCEDURE BoolToStr(paramPtr: XCmdPtr; bool: BOOLEAN; VAR str: Str255);
  165. PROCEDURE ExtToStr(paramPtr: XCmdPtr; num: Extended80; VAR str: Str255);
  166. PROCEDURE LongToStr(paramPtr: XCmdPtr; posNum: LongInt; VAR str: Str255);
  167. PROCEDURE NumToHex(paramPtr: XCmdPtr; num: LongInt; nDigits: INTEGER; VAR str: Str255);
  168. PROCEDURE NumToStr(paramPtr: XCmdPtr; num: LongInt; VAR str: Str255);
  169. FUNCTION  PasToZero(paramPtr: XCmdPtr; str: Str255): Handle;
  170. PROCEDURE PointToStr(paramPtr: XCmdPtr; pt: Point; VAR str: Str255);
  171. PROCEDURE RectToStr(paramPtr: XCmdPtr; rct: Rect; VAR str: Str255);
  172. PROCEDURE ReturnToPas(paramPtr: XCmdPtr; zeroStr: Ptr; VAR pasStr: Str255);
  173. FUNCTION  StrToBool(paramPtr: XCmdPtr; str: Str255): BOOLEAN;
  174. FUNCTION  StrToExt(paramPtr: XCmdPtr; str: Str255): Extended80;
  175. FUNCTION  StrToLong(paramPtr: XCmdPtr; str: Str255): LongInt;
  176. FUNCTION  StrToNum(paramPtr: XCmdPtr; str: Str255): LongInt;
  177. PROCEDURE StrToPoint(paramPtr: XCmdPtr; str: Str255; VAR pt: Point);
  178. PROCEDURE StrToRect(paramPtr: XCmdPtr; str: Str255; VAR rct: Rect);
  179. PROCEDURE ZeroToPas(paramPtr: XCmdPtr; zeroStr: Ptr; VAR pasStr: Str255);
  180.  
  181. (****  Field Utilities  ****)
  182. FUNCTION  GetFieldByID(paramPtr: XCmdPtr; cardFieldFlag: BOOLEAN; fieldID: INTEGER): Handle;
  183. FUNCTION  GetFieldByName(paramPtr: XCmdPtr; cardFieldFlag: BOOLEAN; fieldName: Str255): Handle;
  184. FUNCTION  GetFieldByNum(paramPtr: XCmdPtr; cardFieldFlag: BOOLEAN; fieldNum: INTEGER): Handle;
  185. PROCEDURE SetFieldByID(paramPtr: XCmdPtr; cardFieldFlag: BOOLEAN; fieldID: INTEGER; fieldVal: Handle);
  186. PROCEDURE SetFieldByName(paramPtr: XCmdPtr; cardFieldFlag: BOOLEAN; fieldName: Str255; fieldVal: Handle);
  187. PROCEDURE SetFieldByNum(paramPtr: XCmdPtr; cardFieldFlag: BOOLEAN; fieldNum: INTEGER; fieldVal: Handle);
  188. FUNCTION  GetFieldTE(paramPtr: XCmdPtr; cardFieldFlag: BOOLEAN; fieldID,fieldNum: INTEGER;
  189.              fieldNamePtr: StringPtr): TEHandle;
  190. PROCEDURE SetFieldTE(paramPtr: XCmdPtr; cardFieldFlag: BOOLEAN; fieldID,fieldNum: INTEGER;
  191.              fieldNamePtr: StringPtr; fieldTE: TEHandle);
  192.  
  193. (****  Miscellaneous Utilities  ****)
  194. PROCEDURE BeginXSound(paramPtr: XCmdPtr; window: WindowPtr);            
  195. PROCEDURE EndXSound(paramPtr: XCmdPtr);                
  196. FUNCTION  GetFilePath(paramPtr: XCmdPtr; fileName: Str255; numTypes: INTEGER; typeList: SFTypeList;
  197.               askUser: BOOLEAN; VAR fileType: OSType; VAR fullName: Str255): BOOLEAN;
  198. PROCEDURE GetXResInfo(paramPtr: XCmdPtr; VAR resFile: INTEGER; VAR resID: INTEGER;
  199.               VAR rType: ResType; VAR name: Str255);
  200. PROCEDURE Notify(paramPtr: XCmdPtr);
  201. PROCEDURE SendHCEvent(paramPtr: XCmdPtr; event: EventRecord);    
  202. PROCEDURE SendWindowMessage(paramPtr: XCmdPtr; windPtr: WindowPtr;
  203.                 windowName: Str255; msg: Str255);
  204. FUNCTION  FrontDocWindow(paramPtr: XCmdPtr): WindowPtr;
  205. FUNCTION  StackNameToNum(paramPtr: XCmdPtr; stackName: Str255): LongInt;
  206. FUNCTION  ShowHCAlert(paramPtr: XCMDPtr; dlgID: INTEGER; promptStr: Str255): INTEGER;
  207.  
  208. (****  Creating and Disposing XWindoids  ****)
  209. FUNCTION  NewXWindow(paramPtr: XCmdPtr; boundsRect: Rect; title: Str255; visible: BOOLEAN;
  210.              procID: INTEGER; color: BOOLEAN; floating: BOOLEAN): WindowPtr;        
  211. FUNCTION  GetNewXWindow(paramPtr: XCmdPtr; templateType: ResType; templateID: INTEGER;
  212.             color: BOOLEAN; floating: BOOLEAN): WindowPtr;        
  213. PROCEDURE CloseXWindow(paramPtr: XCmdPtr; window: WindowPtr);    
  214.  
  215. (****  XWindoid Utilities  ****)
  216. PROCEDURE HideHCPalettes(paramPtr: XCmdPtr);
  217. PROCEDURE ShowHCPalettes(paramPtr: XCmdPtr);
  218. PROCEDURE RegisterXWMenu(paramPtr: XCmdPtr; window: WindowPtr; menu: MenuHandle; registering: BOOLEAN);
  219. PROCEDURE SetXWIdleTime(paramPtr: XCmdPtr; window: WindowPtr; interval: LongInt);
  220. PROCEDURE XWHasInterruptCode(paramPtr: XCmdPtr; window: WindowPtr; haveCode: BOOLEAN);
  221. PROCEDURE XWAlwaysMoveHigh(paramPtr: XCmdPtr; window: WindowPtr; moveHigh: BOOLEAN);
  222. PROCEDURE XWAllowReEntrancy(paramPtr: XCmdPtr; window: WindowPtr; allowSysEvts: BOOLEAN; allowHCEvts: BOOLEAN);
  223.  
  224. (****  Text Editing Utilities  ****)
  225. PROCEDURE BeginXWEdit(paramPtr: XCmdPtr; window: WindowPtr);            
  226. PROCEDURE EndXWEdit(paramPtr: XCmdPtr; window: WindowPtr);                
  227. FUNCTION  HCWordBreakProc(paramPtr: XCmdPtr): ProcPtr;        
  228. PROCEDURE PrintTEHandle(paramPtr: XCmdPtr; hTE: TEHandle; header: StringPtr);
  229.  
  230. (****  Script Editor support  ****)
  231. FUNCTION  GetCheckPoints(paramPtr: XCmdPtr): CheckPtHandle;    
  232. PROCEDURE SetCheckPoints(paramPtr: XCmdPtr; checkLines: CheckPtHandle);
  233. PROCEDURE FormatScript(paramPtr: XCmdPtr; scriptHndl: Handle; 
  234.                VAR insertionPoint: LongInt; quickFormat: BOOLEAN);
  235. PROCEDURE SaveXWScript(paramPtr: XCmdPtr; scriptHndl: Handle);    
  236. PROCEDURE GetObjectName(paramPtr: XCmdPtr; object: XTalkObjectPtr; VAR objName: Str255);
  237. PROCEDURE GetObjectScript(paramPtr: XCmdPtr; object: XTalkObjectPtr; VAR scriptHndl: Handle);
  238. PROCEDURE SetObjectScript(paramPtr: XCmdPtr; object: XTalkObjectPtr; scriptHndl: Handle);
  239.  
  240. (****  Debugging Tools support  ****)
  241. PROCEDURE AbortScript(paramPtr: XCmdPtr);
  242. PROCEDURE GoScript(paramPtr: XCmdPtr);
  243. PROCEDURE StepScript(paramPtr: XCmdPtr; stepInto: BOOLEAN);
  244. PROCEDURE CountHandlers(paramPtr: XCmdPtr; VAR handlerCount: INTEGER);
  245. PROCEDURE GetHandlerInfo(paramPtr: XCmdPtr; handlerNum: INTEGER; VAR handlerName: Str255;
  246.              VAR objectName: Str255; VAR varCount: INTEGER);
  247. PROCEDURE GetVarInfo(paramPtr: XCmdPtr; handlerNum: INTEGER; varNum: INTEGER;
  248.              VAR varName: Str255; VAR isGlobal: BOOLEAN; VAR varValue: Str255;
  249.              varHndl: Handle);
  250. PROCEDURE SetVarValue(paramPtr: XCmdPtr; handlerNum: INTEGER; varNum: INTEGER;
  251.               varHndl: Handle);
  252. FUNCTION  GetStackCrawl(paramPtr: XCmdPtr): Handle;
  253. PROCEDURE TraceScript(paramPtr: XCmdPtr; traceInto: BOOLEAN);
  254.  
  255.  
  256. {$ENDC}    { UsingHyperXCmd }
  257.  
  258. {$IFC NOT UsingIncludes}
  259.     END.
  260. {$ENDC}
  261.